/* 2025-03-21 					*/
/* Cambios en la  columna afip.cndiva.codafip			*/
/*  -  cambiar tipo dato:  de  character varying(50) a integer */
/*  -  cargar los codigos definidos por ARCA */

UPDATE afip.cndiva SET codafip = null;

ALTER TABLE afip.cndiva ALTER COLUMN codafip SET DATA TYPE INTEGER USING CAST(codafip AS integer);

UPDATE afip.cndiva 
SET codafip =
	CASE	WHEN cod = 'I' THEN 1
			WHEN cod = 'E' THEN 4
			WHEN cod = 'F' THEN 5
			WHEN cod = 'M' THEN 6
			WHEN cod = 'X' THEN 7
	END;

-- I : IVA Responsable Inscripto    - codafip: 001
-- E : IVA Sujeto Exento            - codafip: 004
-- F : Consumidor Final             - codafip: 005
-- M : Responsable Monotributo      - codafip: 006
-- X : Sujeto No Categorizado       - codafip: 007
--    : Proveedor del Exterior       - codafip: 008
--    : Cliente del Exterior         - codafip: 009
--    : IVA Liberado – Ley N° 19.640 - codafip: 010
--    : Monotributista Social        - codafip: 013
--    : IVA No Alcanzado             - codafip: 015
--    : Monotributo Trabajador Independiente Promovido - codafip 016

INSERT INTO afip.cndiva(cod, nombre, obligatipopaddoc, habilitado, codafip)
VALUES ('I', 'IVA Responsable Inscripto', 'CUIT','S', 1) ON CONFLICT(cod) DO NOTHING;

INSERT INTO afip.cndiva(cod, nombre, obligatipopaddoc, habilitado, codafip)
VALUES ('E', 'IVA Sujeto Exento', 'CUIT', 'S', 4) ON CONFLICT(cod) DO NOTHING;

INSERT INTO afip.cndiva(cod, nombre, obligatipopaddoc, habilitado, codafip)
VALUES ('F', 'Consumidor Final', null, 'S', 5) ON CONFLICT(cod) DO NOTHING;

INSERT INTO afip.cndiva(cod, nombre, obligatipopaddoc, habilitado, codafip)
              VALUES ('M', 'Responsable Monotributo', 'CUIT', 'S', 6) ON CONFLICT(cod) DO NOTHING;

INSERT INTO afip.cndiva(cod, nombre, obligatipopaddoc, habilitado, codafip)
	VALUES ('X', 'Sujeto No Categorizado', null, 'S', 7) ON CONFLICT(cod) DO NOTHING;

/*
agregar columna comm.afipcanmismonext
 indica si el cbte se cancela en la misma moneda extranjera en que se informa a ARCA
*/
ALTER TABLE IF EXISTS public.comm
    ADD COLUMN IF NOT EXISTS afipcanmismonext character varying(1) NOT NULL DEFAULT 'N';

COMMENT ON COLUMN public.comm.afipcanmismonext
    IS 'AFIP: informar si cancela el cbte en misma moneda extranjera. Valores S o N';

--
SELECT aaVersion('537.00','536.00');
--

